﻿using System;
using System.ComponentModel;

namespace SocialKit.SinaWeibo.Api
{
    /// <summary>
    /// 为 API 调用完成的事件提供数据，封装 API 的返回值。
    /// </summary>
    /// <typeparam name="T">从 API 读取返回值的类型。</typeparam>
    public class ApiResponseEventArgs<T> : AsyncCompletedEventArgs
    {
        /// <summary>
        /// 获取 API 的返回值。
        /// </summary>
        public T Response { get; private set; }

        /// <summary>
        /// 创建一个 SocialKit.SinaWeibo.Api.ApiResponseEventArgs 的实例。
        /// </summary>
        /// <param name="response">从 API 读取的返回值。</param>
        /// <param name="error">异常信息。</param>
        /// <param name="cancelled">是否取消。</param>
        /// <param name="userState">用户设置的状态。</param>
        public ApiResponseEventArgs(T response, Exception error, bool cancelled, object userState)
            : base(error, cancelled, userState)
        {
            this.Response = response;
        }
    }
}